1
บทเรียนที่ 7: การแนะนำโมดูลภาษาพายธอน
EvoClass-AI001บรรยายที่ 7
00:00

การแนะนำโมดูลภาษาพายธอน

ในภาษาพายธอน โมดูลคือไฟล์ที่สิ้นสุดด้วย โมดูล ซึ่งเป็นไฟล์ที่ใช้เป็นตัวเก็บองค์ประกอบโค้ดที่สามารถนำกลับมาใช้ใหม่ได้ (ฟังก์ชัน คลาส ตัวแปร) โมดูลเป็นหัวใจสำคัญของโครงสร้างโปรแกรมขนาดใหญ่ ช่วยให้นักพัฒนาจัดการความซับซ้อนและปรับปรุงการบำรุงรักษาโค้ดโดยการแบ่งแยกคำอธิบายอย่างมีเหตุผล กระบวนการนี้คล้ายกับการแบ่งแยกแนวคิดทางคณิตศาสตร์ออกเป็นสาขาเฉพาะ เช่น $f(x)$ ถูกกำหนดไว้ในโดเมนเฉพาะ $D$.py that serves as a container for reusable code components (functions, classes, variables). Modules are the cornerstone of large-scale program architecture, allowing developers to manage complexity and improve code maintenance by logically separating definitions. This process is similar to how mathematical concepts are partitioned into specialized fields (e.g., $f(x)$ is defined in a specific domain $D$).

1. วัตถุประสงค์ของโมดูล

โมดูลตอบสนองความต้องการสามประการที่สำคัญในการพัฒนา:

  • ส่งเสริมการ การนำโค้ดกลับมาใช้ใหม่ ในโครงการหลาย ๆ โปรเจกต์ โดยไม่ต้องเขียนคำอธิบายซ้ำ
  • รับรองความชัดเจนและโครงสร้างที่ดี โดยการแบ่งโปรแกรมขนาดใหญ่ออกเป็นไฟล์ที่จัดการได้และเกี่ยวข้องกัน
  • ป้องกัน การชนชื่อ โดยการกำหนดพื้นที่ชื่อแยกต่างหากสำหรับฟังก์ชันและตัวแปร

ตัวอย่างเชิงแนวคิด:

ลองนึกภาพว่าคุณมีไฟล์ชื่อ utility.py ที่มีฟังก์ชันสำหรับคำนวณผลลัพธ์ทางคณิตศาสตร์ ไฟล์ทั้งหมดนี้คือโมดูล และฟังก์ชันเหล่านั้นคือเนื้อหาที่สามารถเข้าถึงได้

2. วิธีการนำเข้า

คำสั่ง import ทำให้คำอธิบายภายนอกพร้อมใช้งานในสคริปต์ปัจจุบัน เมื่อเลือกวิธีใดวิธีหนึ่ง จะกำหนดวิธีการเข้าถึงองค์ประกอบ และผลกระทบต่อพื้นที่ชื่อของโปรแกรมปัจจุบัน

  • การนำเข้าแบบมาตรฐาน:import module_name. ต้องเข้าถึงเนื้อหาโดยใช้ module_name.function().
  • การนำเข้าแบบเฉพาะเจาะจง:จาก โมดูล import ฟังก์ชัน. อนุญาตให้ใช้โดยตรง function() โดยไม่ต้องมีคำนำหน้าโมดูล
  • การนำเข้าพร้อมชื่อเล่น:import โมดูล เป็นชื่อเล่น. ให้ชื่อเล่นสั้น ๆ ที่เฉพาะเจาะจงต่อโปรเจกต์เพื่อความสะดวก (เช่น import numpy as np)
โฟกัสไลบรารีมาตรฐาน
ภาษาพายธอนมีไลบรารีมาตรฐานที่ครอบคลุมมาก ซึ่งมีโมดูลตัวอย่างเช่น 'os', 'sys', 'random', 'math' การเรียนรู้การใช้โมดูลที่สามารถนำกลับมาใช้ใหม่ได้เป็นสิ่งจำเป็นสำหรับการพัฒนาอย่างมีประสิทธิภาพ และประหยัดเวลาได้อย่างมากไลบรารีมาตรฐาน ของโมดูลที่มีอยู่แล้ว (เช่น 'os', 'sys', 'random', 'math') การเรียนรู้การใช้โมดูลที่สามารถนำกลับมาใช้ใหม่ได้เป็นสิ่งจำเป็นสำหรับการพัฒนาอย่างมีประสิทธิภาพ และประหยัดเวลาได้อย่างมาก
คำถามที่ 1
ถ้าคุณใช้ import math, คุณต้องเรียกใช้ฟังก์ชัน sqrt เพื่อคำนวณ $\sqrt{25}$?
sqrt(25)
math.sqrt(25)
math::sqrt(25)
ใช้ math sqrt
คำถามที่ 2
ข้อดีของการใช้โมดูลข้อใดที่ช่วยแก้ปัญหาการมีฟังก์ชันหลายตัวที่มีชื่อเดียวกัน process_data ในแอปพลิเคชันขนาดใหญ่?
ความเร็วในการทำงานของโค้ด
การป้องกันการชนชื่อ
การดีบั๊กอัตโนมัติ
คำถามที่ 3
เมื่อคุณพยายามนำเข้าไฟล์โมดูลครั้งที่สอง อะไรจะเกิดขึ้น?import ในโปรแกรมที่กำลังทำงานอยู่เดียวกัน?
มันจะถูกนำเข้าอีกครั้ง พร้อมทั้งดำเนินการโค้ดระดับบนสุดทั้งหมด
การนำเข้าล้มเหลวด้วยข้อผิดพลาด
ไพธอนรับรู้ว่ามันถูกโหลดแล้ว จึงข้ามการดำเนินการ
แค่ตัวแปรเท่านั้นที่ถูกโหลดใหม่